package com.mareas.web.model.integration;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.List;

import com.mareas.web.model.Operacion;

public class InformeClienteDTO {

	private Integer clienteId;
	private String clienteNombre;
	private Long cantidadDeOperaciones;
	private BigDecimal importeTotal;
	
	private Integer mesOperacion;
	private Integer anioOperacion;
	private String periodoOperacion;
	private Long cantMesOperacion;
	
	private List<Operacion> listadoOperaciones;
	
	
	public InformeClienteDTO(){
		super();
	}

	public InformeClienteDTO(Integer clienteId, String clienteNombre,
			Long cantidadDeOperaciones, List<Operacion> listadoOperaciones) {
		super();
		this.clienteId = clienteId;
		this.clienteNombre = clienteNombre;
		this.cantidadDeOperaciones = cantidadDeOperaciones;
		this.listadoOperaciones = listadoOperaciones;
	}
	
	public InformeClienteDTO(Integer clienteId, String clienteNombre,
			Long cantidadDeOperaciones,BigDecimal importeTotal) {
		super();
		this.clienteId = clienteId;
		this.clienteNombre = clienteNombre;
		this.cantidadDeOperaciones = cantidadDeOperaciones;
		this.importeTotal = importeTotal;
	}
	
	public InformeClienteDTO(Integer clienteId, String clienteNombre,
			Integer mesOperacion,Integer anioOperacion, Long cantMesOperacion) {
		super();
		this.clienteId = clienteId;
		this.clienteNombre = clienteNombre;
		this.cantMesOperacion = cantMesOperacion;
		this.periodoOperacion = this.getMes(mesOperacion)+" "+anioOperacion.toString();
	}


	public Integer getClienteId() {
		return clienteId;
	}

	public void setClienteId(Integer clienteId) {
		this.clienteId = clienteId;
	}

	public String getClienteNombre() {
		return clienteNombre;
	}

	public void setClienteNombre(String clienteNombre) {
		this.clienteNombre = clienteNombre;
	}

	public Long getCantidadDeOperaciones() {
		return cantidadDeOperaciones;
	}

	public void setCantidadDeOperaciones(Long cantidadDeOperaciones) {
		this.cantidadDeOperaciones = cantidadDeOperaciones;
	}

	public List<Operacion> getListadoOperaciones() {
		return listadoOperaciones;
	}

	public void setListadoOperaciones(List<Operacion> listadoOperaciones) {
		this.listadoOperaciones = listadoOperaciones;
	}

	/**
	 * @return the importeTotal
	 */
	public BigDecimal getImporteTotal() {
		return importeTotal;
	}

	/**
	 * @param importeTotal the importeTotal to set
	 */
	public void setImporteTotal(BigDecimal importeTotal) {
		this.importeTotal = importeTotal;
	}

	/**
	 * @return the mesOperacion
	 */
	public Integer getMesOperacion() {
		return mesOperacion;
	}

	/**
	 * @param mesOperacion the mesOperacion to set
	 */
	public void setMesOperacion(Integer mesOperacion) {
		this.mesOperacion = mesOperacion;
	}

	/**
	 * @return the cantMesOperacion
	 */
	public Long getCantMesOperacion() {
		return cantMesOperacion;
	}

	/**
	 * @param cantMesOperacion the cantMesOperacion to set
	 */
	public void setCantMesOperacion(Long cantMesOperacion) {
		this.cantMesOperacion = cantMesOperacion;
	}

	/**
	 * @return the anioOperacion
	 */
	public Integer getAnioOperacion() {
		return anioOperacion;
	}

	/**
	 * @param anioOperacion the anioOperacion to set
	 */
	public void setAnioOperacion(Integer anioOperacion) {
		this.anioOperacion = anioOperacion;
	}

	/**
	 * @return the periodoOperacion
	 */
	public String getPeriodoOperacion() {
		return periodoOperacion;
	}

	/**
	 * @param periodoOperacion the periodoOperacion to set
	 */
	public void setPeriodoOperacion(String periodoOperacion) {
		this.periodoOperacion = periodoOperacion;
	}
	
	private String getMes(Integer mes)
	{
		switch (mes) {
		case 1:
			return "Enero";
		case 2:
			return "Febrero";
		case 3:
			return "Marzo";
		case 4:
			return "Abril";
		case 5:
			return "Mayo";
		case 6:
			return "Junio";
		case 7:
			return "Julio";
		case 8:
			return "Agosto";
		case 9:
			return "Setiembre";
		case 10:
			return "Octubre";
		case 11:
			return "Noviembre";
		case 12:
			return "Diciembre";
		default:
			return "";
		}
	}
}
